package com.gcb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gcb.domain.dto.CompanyUserQueryDTO;
import com.gcb.domain.entity.CompanyUser;
import com.gcb.domain.vo.CompanyUserVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 工船宝企业用户关系Mapper接口
 *
 * @author seh
 * @date 2024-03-08
 */
@Mapper
@Repository
public interface CompanyUserMapper extends BaseMapper<CompanyUser> {

    List<CompanyUserVO> list(CompanyUserQueryDTO dto);

    /**
     * 查询工船宝用户的企业身份
     *
     * @param userId 用户id
     * @return CompanyUser
     */
    List<CompanyUserVO> selectCompanyUserByUserId(Long userId);

    /**
     * 查企业下的所有用户信息
     *
     * @param companyId 企业id
     * @return CompanyUser
     */
    List<CompanyUserVO> selectCompanyUserByCompanyId(Long companyId);

    List<CompanyUserVO> selectMembersByCompanyIdWithoutUserId(@Param("companyId") Long companyId, @Param("userId") Long userId);

    /**
     * 批量删除工船宝企业用户关系
     *
     * @param companyIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteByCompanyIds(Long[] companyIds);

    /**
     * 根据用户id和公司id查询
     *
     * @param userId    用户id
     * @param companyId 公司id
     */
    CompanyUserVO selectByUserIdAndCompanyId(@Param("userId") Long userId, @Param("companyId") Long companyId);

}
